﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Reflection;
using System.Xml.Linq;

namespace Models
{
    public class CCPaths
    {
        #region Properties
        public string FxcopProjectPath { get; set; }
        public string FxCopExecutable { get; set; }
        public string SolutionName { get; set; }
        public string ProjectName { get; set; }
        public string Queue { get; set; }
        public string QueuePriority { get; set; }
        public string ProjectDirectory { get; set; }
        public string ProjectLogs { get; set; }
        public string SvnURL { get; set; }
        public string NunitExecutable { get; set; }
        public List<XElement> NunitAssemblies { get; set; }
        public string CCPath { get; set; }
        public string SvnExecutable { get; set; }
        public string MSbuildExecutable { get; set; }
        public string BuildType { get; set; } 
        #endregion

        #region Contructor
        /// <summary>
        /// Initializes a new instance of the CCPaths class.
        /// </summary>
       
        public CCPaths()
        {
            NunitAssemblies = new List<XElement>();
        } 
        #endregion

        #region Methods
        public List<string> CheckForNulls()
        {
            List<string> nullProperties = new List<string>();
            Type t = this.GetType();
            foreach (var prop in t.GetProperties())
            {
                if (prop.GetValue(this, null) == null)
                {
                    nullProperties.Add(prop.Name);
                }
            }
            return nullProperties;
        } 
        #endregion



    }
}
